import axios from "axios";

// 创建 axios 实例
const service = axios.create({
    baseURL: import.meta.env.VITE_APP_BASE_API, // 通过环境变量配置
    timeout: 50000,
    headers: { "Content-Type": "application/json" }
});

// 请求拦截器
service.interceptors.request.use(
    config => {
        // 携带 Token 的逻辑（示例）
        const token = localStorage.getItem("access_token");
        if (token) {
            config.headers.Authorization = `Bearer ${token}`;
        }
        return config;
    },
    error => Promise.reject(error)
);

// 响应拦截器
service.interceptors.response.use(
    response => {
        // 处理 2xx 状态码
        const { code, message } = response.data;
        if (code === 200) {
            return response.data; // 直接返回核心数据
        } else {
            return Promise.reject(new Error(message || "请求异常"));
        }
    },
    error => {
        // 处理非 2xx 状态码
        const status = error.response?.status;
        switch (status) {
            case 401:
                console.error("登录过期，请重新登录");
                router.replace("/login");
                break;
            case 403:
                console.error("没有权限访问");
                break;
            case 500:
                console.error("服务器内部错误");
                break;
            default:
                console.error("网络异常，请稍后重试");
        }
        return Promise.reject(error);
    }
);

export default service;